package com.ruoyi.amm.service.impl;

import com.ruoyi.amm.domain.Amm;
import com.ruoyi.amm.mapper.AmmMapper;
import com.ruoyi.amm.service.IAmmService;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.bean.BeanValidators;
import com.ruoyi.system.service.ISysConfigService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import javax.validation.Validator;
import java.util.List;

/**
 * 仪器管理Service业务层处理
 * 
 * @author pyt
 * @date 2022-12-14
 */
@Service
public class AmmServiceImpl implements IAmmService 
{
    @Autowired (required=false)
    private AmmMapper ammMapper;
    @Autowired
    private ISysConfigService configService;
    @Autowired
    protected Validator validator;



    /**
     * 查询仪器管理
     * 
     * @param id 仪器管理主键
     * @return 仪器管理
     */
    @Override
    public Amm selectAmmById(Long id)
    {
        return ammMapper.selectAmmById(id);
    }
    @Override
    public Amm selectAmmBysbId(String shebid)
    {
        return ammMapper.selectAmmBysbId(shebid);
    }


    /**
     * 查询仪器管理列表
     * 
     * @param amm 仪器管理
     * @return 仪器管理
     */
    @Override
    public List<Amm> selectAmmList(Amm amm)
    {
        return ammMapper.selectAmmList(amm);
    }

    /**
     * 新增仪器管理
     * 
     * @param amm 仪器管理
     * @return 结果
     */
    @Override
    public int insertAmm(Amm amm)
    {
        return ammMapper.insertAmm(amm);
    }

    /**
     * 修改仪器管理
     * 
     * @param amm 仪器管理
     * @return 结果
     */
    @Override
    public int updateAmm(Amm amm)
    {
        return ammMapper.updateAmm(amm);
    }

    /**
     * 批量删除仪器管理
     * 
     * @param ids 需要删除的仪器管理主键
     * @return 结果
     */
    @Override
    public int deleteAmmByIds(Long[] ids)
    {
        return ammMapper.deleteAmmByIds(ids);
    }

    /**
     * 删除仪器管理信息
     * 
     * @param id 仪器管理主键
     * @return 结果
     */
    @Override
    public int deleteAmmById(Long id)
    {
        return ammMapper.deleteAmmById(id);
    }
    /*导入*/
//    @Override
//    public String importAmm(List<Amm> ammList, Boolean isUpdateSupport, String operName){
//        if (StringUtils.isNull(ammList) || ammList.size() == 0)
//        {
//
//
//            throw new ServiceException("导入用户数据不能为空！");
//        }
//        int successNum = 0;
//        int failureNum = 0;
//        StringBuilder successMsg = new StringBuilder();
//        StringBuilder failureMsg = new StringBuilder();
//        String password = configService.selectConfigByKey("sys.user.initPassword");
//        for (Amm amm : ammList) {
//            try {
//
//                // 验证是否存在这个用户
//                Amm u = ammMapper.selectAmmBysbId(amm.getShebId());
//                if (StringUtils.isNull(u)) {
//                    BeanValidators.validateWithException(validator, amm);
//                    amm.setCreateBy(operName);
//                    this.insertAmm(amm);
//                    successNum++;
//                    successMsg.append("<br/>" + successNum + "、账号 " + amm.getShebId() + " 导入成功");
//
//                } else if (isUpdateSupport) {
//                    BeanValidators.validateWithException(validator, amm);
////                checkAmmAllowed(amm);
////                checkUserDataScope(user.getUserId());
//                    amm.setUpdateBy(operName);
//                    this.updateAmm(amm);
//                    successNum++;
//                    successMsg.append("<br/>" + successNum + "、账号 " + amm.getShebId() + " 更新成功");
//                } else {
//                    failureNum++;
//                    failureMsg.append("<br/>" + failureNum + "、账号 " + amm.getShebId() + " 已存在");
//                }
//            } catch (Exception e) {
//                failureNum++;
//                String msg = "<br/>" + failureNum + "、账号 " + amm.getShebId() + " 导入失败：";
//                failureMsg.append(msg + e.getMessage());
////                log.error(msg, e);
//            }
//        }
//        if (failureNum > 0)
//        {
//            failureMsg.insert(0, "很抱歉，导入失败！共 " + failureNum + " 条数据格式不正确，错误如下：");
//            throw new ServiceException(failureMsg.toString());
//        }
//        else
//        {
//            successMsg.insert(0, "恭喜您，数据已全部导入成功！共 " + successNum + " 条，数据如下：");
//        }
//        return successMsg.toString();
//
//    }
}
